-- CALC_AVALON_LAB_NEED

-- 计算阿瓦隆实验室所需要的物品
-- @param labType 实验室的类型
return function(labType)
    local info = {};
    local rand, num;

    -- 根据实验室类型获取所需要物品
    if labType == "gray_dwarf" then
        -- 灰矮人实验室

        -- 数量1-3随机
        rand = DungeonM.getRandSeed("CALC_AVALON_LAB_NEED");
        num = FormulaM.invoke("FETCH_BY_RAND", {1, 2, 3}, rand);
        info = {1, 7523, num};
    elseif labType == "dwarf" then
        -- 矮人实验室

        -- 随机一件蒸汽动力装备
        local arr = {8226, 8227, 8228, 8229,};
        rand = DungeonM.getRandSeed("CALC_AVALON_LAB_NEED");
        local classId = FormulaM.invoke("FETCH_BY_RAND", arr, rand);

        info = {1, classId, 1};
    elseif labType == "goblin" then
        -- 地精实验室

        -- 50%，扣除生命值，初始60点，每过10层增加10点
        -- 50%，扣除魔法值，初始30点，每过10层增加5点
        local layer = DungeonM.currentLayer();
        num   = 30 + math.modf(layer / 10) * 5;
        rand = DungeonM.getRandSeed("CALC_AVALON_LAB_NEED") % 100;

        if rand < 50 then
            info = {2, "hp", num * 2};
        else
            info = {2, "mp", num};
        end
    else
        trace("CALC_AVALON_LAB_NEED", "未配置的实验室类型：%s", labType);
        return {};
    end

    return info;
end